present

fun <T> Collection<T>.present(limit: Int = -1): String(source)
fun <T> Collection<T>.present(limit: Int = -1, format: (T) -> CharSequence): String(source)

Pretty-prints the provided collection in JSON array style.

See also

joinToString

Samples

import dev.kikugie.commons.collections.FixedQueue
import dev.kikugie.commons.collections.present
import kotlin.test.assertEquals
import kotlin.test.assertFailsWith

fun main() { 
   //sampleStart 
   val items: Collection<Int> = listOf(1, 2, 3)

assertEquals("[1, 2, 3]", items.present())
assertEquals("[1, ...]", items.present(limit = 1))
assertEquals("['1', '2', '3']", items.present { "'$it'" }) 
   //sampleEnd
}

fun <K, V> Map<K, V>.present(limit: Int = -1): String(source)
fun <K, V> Map<K, V>.present(limit: Int = -1, format: (k: K, v: V) -> CharSequence): String(source)

Pretty-prints the provided map in JSON dictionary style.

See also

joinToString

Samples

import dev.kikugie.commons.collections.FixedQueue
import dev.kikugie.commons.collections.present
import kotlin.test.assertEquals
import kotlin.test.assertFailsWith

fun main() { 
   //sampleStart 
   val entries: Map<String, Int> = mapOf("a" to 1, "b" to 2, "c" to 3)

assertEquals("{a: 1, b: 2, c: 3}", entries.present())
assertEquals("{a: 1, ...}", entries.present(limit = 1))
assertEquals("{'a' = 0b1, 'b' = 0b10, 'c' = 0b11}", entries.present { k, v -> "'$k' = 0b${v.toString(2)}" }) 
   //sampleEnd
}